package com.jeffse.light.stream.core.data.store;

import com.jeffse.light.stream.core.data.descriptor.stateDescriptor.MapStateDescriptor;
import com.jeffse.light.stream.core.data.descriptor.stateDescriptor.ValueStateDescriptor;
import com.jeffse.light.stream.core.data.state.ListState;
import com.jeffse.light.stream.core.data.state.MapState;
import com.jeffse.light.stream.core.data.state.ValueState;

import java.io.Serializable;

public interface KeyedStateStore extends Serializable {
    // 值类型状态数据
    <T> ValueState<T> getState(ValueStateDescriptor<T> stateProperties);

    // List 类型状态数据
    <T> ListState<T> getListState(ValueStateDescriptor<T> stateProperties);

    // map 类型状态数据
    <T, V> MapState<T, V> getMapState(MapStateDescriptor<T> stateProperties);
}
